package traveldreamEJB;

import java.io.Serializable;

import javax.persistence.*;

import supportClass.ViaggioDTO;

import java.util.List;


/**
 * The persistent class for the viaggio database table.
 * 
 */
@Entity
@Table(name="viaggio")
@NamedQueries({
@NamedQuery(name="Viaggio.findAll", query="SELECT v FROM Viaggio v"),
@NamedQuery(name="Viaggio.findMax", query="SELECT MAX(v.idViaggio) FROM Viaggio v"),
@NamedQuery(name="Viaggio.findViaggioById", query="SELECT v FROM Viaggio v WHERE v.idViaggio=:idViaggio")

})
public class Viaggio implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id 
	@Column(unique=true, nullable=false)
	private Integer idViaggio;

	@Column(length=45, nullable=false)
	private String linkViaggio;

	@Column(nullable=false)
	private boolean listaRegalo;

	@Column(nullable=false)
	private Integer numeroPersone;

	@ManyToMany
	@JoinTable(
			name="viaggio_has_istanza",
			 joinColumns ={
					@JoinColumn(name="Viaggio_idViaggio", referencedColumnName="idViaggio")
				} ,
			inverseJoinColumns ={
					@JoinColumn(name="Istanza_idIstanza", referencedColumnName="idIstanza")
			})
	private List<Istanza> listaIstanze;


	//bi-directional many-to-one association to Pacchetto
	@ManyToOne
	@JoinColumn(name="Pacchetto_idPacchetto", nullable=false)
	private Pacchetto pacchetto;

	//bi-directional many-to-one association to Utente
	@ManyToOne
	@JoinColumn(name="Utente_email", nullable=false)
	private Utente utente;

	public Viaggio() {
	}
	
	public Viaggio(ViaggioDTO viaggio, List<Istanza> istanze, Pacchetto pacchetto, Utente utente, int idViaggio){
		this.numeroPersone = viaggio.getNumeroPersone();
		this.listaIstanze = istanze;
		this.pacchetto = pacchetto;
		this.utente = utente;
		this.listaRegalo = viaggio.getListaRegalo();
		this.idViaggio = idViaggio;
		this.linkViaggio = ""+ idViaggio;
	}

	public Integer getIdViaggio() {
		return this.idViaggio;
	}

	public void setIdViaggio(Integer idViaggio) {
		this.idViaggio = idViaggio;
	}

	public String getLinkViaggio() {
		return this.linkViaggio;
	}

	public void setLinkViaggio(String linkViaggio) {
		this.linkViaggio = linkViaggio;
	}

	public boolean getListaRegalo() {
		return this.listaRegalo;
	}

	public void setListaRegalo(boolean listaRegalo) {
		this.listaRegalo = listaRegalo;
	}

	public Integer getNumeroPersone() {
		return this.numeroPersone;
	}

	public void setNumeroPersone(Integer numeroPersone) {
		this.numeroPersone = numeroPersone;
	}

	public List<Istanza> getListaIstanze() {
		return this.listaIstanze;
	}

	public void setListaIstanze(List<Istanza> listaIstanze) {
		this.listaIstanze = listaIstanze;
	}

	

	public Pacchetto getPacchetto() {
		return this.pacchetto;
	}

	public void setPacchetto(Pacchetto pacchetto) {
		this.pacchetto = pacchetto;
	}

	public Utente getUtente() {
		return this.utente;
	}

	public void setUtente(Utente utente) {
		this.utente = utente;
	}

}